package proyecto.ort.edu.uy.dominio;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
@Table(name = "EMPRESAS")
@SequenceGenerator(name = "EMPRESA_SEQ", sequenceName = "EMPRESA_SEQ")
public class Empresa implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = -4171633620849343584L;

	@Id
	@GeneratedValue(strategy = GenerationType.AUTO, generator = "EMPRESA_SEQ")
	private Long idEmpresa;

	@Column(name = "nombreEmpresa")
	private String nombre;

	private String logo;

	@Column(name = "fecha_Creacion")
	@Temporal(TemporalType.TIMESTAMP)
	private Date fechaCreacion;

	@Column(name = "fecha_Modificacion")
	@Temporal(TemporalType.TIMESTAMP)
	private Date fechaModificacion;

	@Column(name = "cant_usuarios")
	private Integer cantidadUsuarios;

	@OneToMany(cascade = CascadeType.ALL, mappedBy = "empresa")
	private List<AreaDeTrabajo> lstAreaDeTrabajo;

	@OneToOne()
	@JoinColumn(name = "idContacto")
	private Usuario usuarioContacto;

	public Integer getCantidadUsuarios() {
		return cantidadUsuarios;
	}

	public Date getFechaCreacion() {
		return fechaCreacion;
	}

	public Date getFechaModificacion() {
		return fechaModificacion;
	}

	public Long getIdEmpresa() {
		return idEmpresa;
	}

	public String getLogo() {
		if(logo == null){
			logo = "logo.jpg";
		}
		return logo;
	}

	public List<AreaDeTrabajo> getLstAreaDeTrabajo() {
		return lstAreaDeTrabajo;
	}

	public String getNombre() {
		return nombre;
	}

	public Usuario getUsuarioContacto() {
		return usuarioContacto;
	}

	public void setCantidadUsuarios(Integer cantidadUsuarios) {
		this.cantidadUsuarios = cantidadUsuarios;
	}

	public void setFechaCreacion(Date fechaCreacion) {
		this.fechaCreacion = fechaCreacion;
	}

	public void setFechaModificacion(Date fechaModificacion) {
		this.fechaModificacion = fechaModificacion;
	}

	public void setIdEmpresa(Long idEmpresa) {
		this.idEmpresa = idEmpresa;
	}

	public void setLogo(String logo) {
		this.logo = logo;
	}

	public void setLstAreaDeTrabajo(List<AreaDeTrabajo> lstAreaDeTrabajo) {
		this.lstAreaDeTrabajo = lstAreaDeTrabajo;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public void setUsuarioContacto(Usuario usuarioContacto) {
		this.usuarioContacto = usuarioContacto;
	}

}
